package com.bluebridgecup.DP;

import java.util.Scanner;

public class 递归求组合数 {
    // 定义一个静态方法f，用于递归计算组合数C(n,m)
    static int f(int n, int m) {
        // 当n等于m时，组合数为1
        // 当m等于0时，组合数为1
        if (n == m || m == 0) return 1;
        // 递归调用
        // 根据组合数的递推公式C(n,m)=C(n-1,m-1)+C(n-1,m)进行计算
        return f(n - 1, m - 1) + f(n - 1, m);
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取数据总数t
        int t = in.nextInt();
        // 循环t次，处理每组输入数据
        while (t-- > 0) {
            // 读取n和m
            int n = in.nextInt();
            int m = in.nextInt();
            // 调用f方法计算组合数，并输出结果
            System.out.println(f(n, m));
        }
        in.close();
    }
}
